Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с 2da таблицами
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset > Custom Content
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
DBColl
Anker
Нет. Как правило колонка ID ничего не решает. Она для личного удобства wink.gif.
K.SpecTr
Итак, возьмем строки стандартного полиморфа шифтера и дадим их RDD (изменения в таблицах минимальны - только выдрал и проверил на глючность - глючат biggrin.gif ):
Это у нас cls_feat_dradis.2da
CODE
          FeatLabel                             FeatIndex   List   GrantedOnLevel   OnMenu
41         FEAT_DRAGON_DIS_BREATH                965         3      M                1        
...
71         FEAT_EPIC_WILD_SHAPE_DRAGON           873         1      N                1

Это у нас feat.2da
CODE
      LABEL                                            FEAT    DESCRIPTION   ICON               MINATTACKBONUS   MINSTR   MINDEX   MININT   MINWIS   MINCON   MINCHA   MINSPELLLVL   PREREQFEAT1   PREREQFEAT2   GAINMULTIPLE   EFFECTSSTACK   ALLCLASSESCANUSE   CATEGORY   MAXCR   SPELLID   SUCCESSOR   CRValue   USESPERDAY   MASTERFEAT   TARGETSELF   OrReqFeat0   OrReqFeat1   OrReqFeat2   OrReqFeat3   OrReqFeat4   REQSKILL   ReqSkillMinRanks   REQSKILL2   ReqSkillMinRanks2   Constant                                         TOOLSCATEGORIES   HostileFeat   MinLevel   MinLevelClass   MaxLevel   MinFortSave   PreReqEpic
873    FEAT_EPIC_WILD_SHAPE_DRAGON                      8667    8668          ife_X2WShpDrag     ****             ****     ****     ****     ****     ****     ****     ****          ****          ****          0              0              0                  ****       ****    725       ****        1         ****         ****         1            ****         ****         ****         ****         ****         ****       ****               ****        ****                FEAT_WILD_SHAPE_DRAGON                           6                 ****          ****       ****            ****       ****          0            

Это у нас spells.2da
CODE
     Label                               Name    IconResRef        School   Range   VS     MetaMagic   TargetType   ImpactScript       Bard   Cleric   Druid   Paladin   Ranger   Wiz_Sorc   Innate   ConjTime   ConjAnim   ConjHeadVisual    ConjHandVisual    ConjGrndVisual    ConjSoundVFX      ConjSoundMale      ConjSoundFemale    CastAnim   CastTime   CastHeadVisual   CastHandVisual   CastGrndVisual   CastSound          Proj   ProjModel          ProjType       ProjSpwnPoint   ProjSound          ProjOrientation   ImmunityType     ItemImmunity   SubRadSpell1   SubRadSpell2   SubRadSpell3   SubRadSpell4   SubRadSpell5   Category   Master   UserType   SpellDesc   UseConcentration   SpontaneouslyCast   AltMessage   HostileSetting   FeatID      Counter1   Counter2   HasProjectile  
707   Greater_Wild_Shape_Red_dragon       12491   is_ShpDragon      T        P       v      0x00        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       3        1500       hand       ****              vco_smhannatr01   ****              sco_mehannatr01   ****               ****               out        1000       ****             ****             ****             ****               0      ****               ****           ****            ****               ****              ****             0              ****           ****           ****           ****           ****           ****       677      2          ****        0                  0                   83578        0                329057129   ****       ****       0              
708   Greater_Wild_Shape_Blue_dragon      12467   is_ShpDragon      T        P       v      0x00        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       3        1500       hand       ****              vco_smhannatr01   ****              sco_mehannatr01   ****               ****               out        1000       ****             ****             ****             ****               0      ****               ****           ****            ****               ****              ****             0              ****           ****           ****           ****           ****           ****       677      3          ****        0                  0                   83578        0                329122665   ****       ****       0              
709   Greater_Wild_Shape_Green_dragon     12487   is_ShpDragon      T        P       v      0x00        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       3        1500       hand       ****              vco_smhannatr01   ****              sco_mehannatr01   ****               ****               out        1000       ****             ****             ****             ****               0      ****               ****           ****            ****               ****              ****             0              ****           ****           ****           ****           ****           ****       677      3          ****        0                  0                   83578        0                329188201   ****       ****       0              
...
725   Dragon_Shape                        8667    is_ShpDragon      T        P       v      ****        0x01         X2_S2_GWildShp     ****   ****     ****    ****      ****     ****       1        1500       hand       ****              ****              ****              ****              ****               ****               ****       ****       ****             ****             ****             ****               ****   ****               ****           ****            ****               ****              ****             0              707            708            709            ****           ****           ****       ****     3          ****        0                  0                   83895        0                873         ****       ****       0              

В первой строке числа я обозвал M и N соответственно. (было 3 и 10)
P.S. Извиняйте если строки не очень читабельные, не знал как лучше сделать dntknw.gif
P.P.S.
QUOTE
невбубенные картинки
Ну я за 5-ть минут только пол картинки закачал и обломался, а что там было? pilot.gif
Lemegeton
См. приват.
DBColl
QUOTE (K.SpecTr @ Dec 27 2004, 19:27)
Ну я за 5-ть минут только пол картинки закачал и обломался, а что там было?

Реальная работа активного фита превращения в синего драка. wink.gif
Anker
А в чём же тогда дело?
DBColl
Что ты сделал? Паоитру Левора экспортировал/импортировал?
Lemegeton
Попробуй в cls_feat_****.2da поменять в столбце List 1 на 3. this.gif
И UserType в SPELLS.2DA посмотри. Не очень-то понятно, где у тебя фит должен стоять.

Да, если у тебя версия выше 1.60, не заморачивайся так с радиальными активными фитами. И без этой мути работают. biggrin.gif
Goblin
"Сбивание с ног" --- а так это какой спас будет против этого фита, а я думал что идет речь о том что для взятия какого-то фита требуется определенное кол-во спаса.

"Э, батенька, это уже на скриптах решать надобно. Да и почему бред? Ты лук видел? А тетиву натянуть пробовал? Там нужна сила. А ловкость, скорее на скорость." - позволю себе не согласится -- девастат по идее рассматривается МНОЙ как эдакий супер пупер удар которым можно с одного щелчка завалить противника, за счет так сказать большОго умения мастера. Дык для использования лука в основном нужна ловкость - чтобы так стрелу пустить чтобы она попала в такое место (каждый думает конечно в меру своей испорченности, но туда - тоже вариант drag.gif ) чтоб врага сразу сдуло. А сила действительно влияет - но на урон наносимый стрелой, который в данном случае и приравнивается к скорости стрелы (считаем что стреляется одинаковыми по массе стрелами). Так что ИМХО как раз от ловкости должен расчитываться девастат, а не от силы. Эт так скаать разь. И двазь - почему на скриптах - взять скрипт от девастата (он общий) - выдрать из него ту часть которая отвечается за лук (арбалет, пращу и т.д.) и оформить в виде отдельного фита который привязать к достижению допустим 25 ловкости и в самом скрипте поставить где была сила - ловкость. Т.о. стандартный девастат останется, а мой будет появлятся тогда когда мне надо т.е. при достижении персом 25 ловкости. В принципе придется конечно по скриптам полазить - не без этого, но чтоб только на скриптах - эт ты загнул pilot.gif

"Например, пропадает курсор, и спелл, привязаный "на себя" кастуется без "наводки"." - т.е. должен кастовать на себя, а кастуется на кого то от балды, кто рядом стоит - или я чего то не понял dntknw.gif ?

"Имеется в виду АКТИВНЫЙ фит, присутствующий в радиальном меню. А где ты поставишь OnMenu???????" --- хм, ну тогда в том самом цлс_фитс прописать твой фит каждому классу вручную ...

"Сорри за народ.рю и невбубенные картинки. " -- ты бы еще видео снял в авишнике biggrin.gif lol.gif - а то вдруг кто не поймет - как полиморфится надо =))))))))))))))))

2K.SpecTr : Убери "перенос по словам" в блокноте - все сразу преобразится в более менее нормальную картину dirol.gif

т.е. если сначала полиморф - потом перегар -- то перегар не взять никогда, а если наоборот - сначала перегар взять - то полиморф потом взять можно --- я прально понял ?
Lemegeton
QUOTE
а я думал что идет речь о том что для взятия какого-то фита требуется определенное кол-во спаса.

Например? crazy.gif

QUOTE
ну тогда в том самом цлс_фитс прописать твой фит каждому классу вручную ...

А при мультиклассе у тебя за каждый класс этот фит давать будут.

QUOTE
ты бы еще видео снял в авишнике  - а то вдруг кто не поймет - как полиморфится надо =))))))))))))))))

Это я дабы не быть голословным сделал. Чтобы не подумали, что от балды свое IMHO выложил.

QUOTE
...на урон наносимый стрелой, который в данном случае и приравнивается к скорости стрелы...

Позволь не согласиться, дабы стреле скорость придать нужно ей придать ускорение, оно, извини от твоей силы зависит. Ловкость это, скорее, точность действий. Хотя, если в глаз с пяти метров засадить - тут силы много не потребуется. yes.gif

QUOTE
...и в самом скрипте поставить где была сила - ловкость...

А всего остального можно и не делать... biggrin.gif
K.SpecTr
QUOTE (Goblin @ Dec 28 2004, 16:15)
2K.SpecTr : Убери "перенос по словам" в блокноте - все сразу преобразится в более менее нормальную картину

По-моему это не ко мне, ведь я "это" постил, а не читать собираюсь. crazy.gif
QUOTE (Lemegeton @ Dec 28 2004, 16:03)
Да, если у тебя версия выше 1.60, не заморачивайся так с радиальными активными фитами. И без этой мути работают

Работать то они работают и в фитах charscreen'a отображаются, но как я их активировать буду, если их в меню нет и выбрать соответственно нельзя? Через консоль? crazy.gif
QUOTE (Goblin @ Dec 28 2004, 16:15)
т.е. если сначала полиморф - потом перегар -- то перегар не взять никогда, а если наоборот - сначала перегар взять - то полиморф потом взять можно --- я прально понял ?

Неправильно!
Взять можно и то и другое, даже больше - оно дается автоматом при левелапе, но если у меня нет Fire_breath, то я не вижу радиальное меню классовых абилок и не могу активизировать полиморф (даже если он "взят"), НО если меню уже есть, И в нем уже есть иконка Fire.breath, то тогда иконка полиморфа появляется рядом, как и запланировано (я ее жму и получаю дракона как положено).
QUOTE (Lemegeton @ Dec 28 2004, 16:03)
List 1 на 3

Ноль, и вроде это влияет на принадлежность фита (combat, metamagic, class ets.), а не на то что нужно.
QUOTE (Lemegeton @ Dec 28 2004, 16:03)
И UserType в SPELLS.2DA посмотри

И смотреть не надо, все правильно (3=feat).
Lemegeton
Вот это да?! Я попробовал сделать то же самое - усе нормально!!! Бредятина. Буду искать разницу. Какая у тебя вресия?
K.SpecTr
QUOTE (K.SpecTr @ Dec 28 2004, 17:07)
И смотреть не надо, все правильно (3=feat)

Вру biggrin.gif для 707-ой строки "Greater_Wild_Shape_Red_dragon" стоит 2. Но оно там так и стояло, это не я это Биовари. dntknw.gif
Поменял на 3 - эффект тотже! Какие будут другие предложения? Может ли быть появление меню классовых абилок "зашито" в core на "родные" абилки или нет? Если да, то это могло бы что-нибудь объяснить.
Версия 1.62 +exp1+exp2
Добавлено в [mergetime]1104243721[/mergetime]
QUOTE (Lemegeton @ Dec 28 2004, 17:14)
Я попробовал сделать то же самое - усе нормально!!!

M и N плиз, при которых пробовал.
Anker
Нет политру я не экспортировал и не импортировал, не знал как.
Я пробовал редактировать 2da файл вашего хака. Делак всё как писал Айван. Брал стандартный плейсебл и добавлял строки из вашего хака. При этом изменились вещи которые вылазят заместь стандартных и всё. dntknw.gif
Я уже начал подумывать что дело в каком то нюансе о котором я не знаю.

this.gif this.gif this.gif
DBColl
QUOTE (Anker @ Dec 28 2004, 17:27)
Нет политру я не экспортировал и не импортировал, не знал как.

Залазь Меню, Файл, Экспорт (в Проклятии). Выбираешь тип ресурса внизу Placeables. Отмечаешь все и нажимаешь ОК. Сохранится ERF-файл.

Затем открываешь свой модуль, подключаешь к нему 2 хака Проклятия. Залазь Меню, Файл, Импорт. Указываешь этот сохраненный ERF и да будет тебе счастье. wink.gif
K.SpecTr
QUOTE (K.SpecTr @ Dec 28 2004, 17:07)
QUOTE (Lemegeton @  Dec 28 2004, 16:03)

List 1 на 3

Ноль, и вроде это влияет на принадлежность фита (combat, metamagic, class ets.), а не на то что нужно.

Малость ошибся black eye.gif
Если я меняю на 3, то фит я получаю в радиальном меню всех абилок, там где воровать, ходить тихо и т.д., а мне надо чтобы это было в отдельном подменю данного меню, предназначенным для классовых возможностей, например, для полиморфа Шифтера и Друида появляются в меню абилок золотые иконки с изображением класса (дерево для друида, морда для шифтера), а уже из них ростут остальные их абилки, также у меня получалось с RDD, но только на условиях приведенных выше.
Lex
Блин...Anker, наш хак очень устарел. На волте полно плэйсов. Зачем тебе наш??
Anker
QUOTE (Lex @ Dec 28 2004, 21:58)
Блин...Anker, наш хак очень устарел. На волте полно плэйсов. Зачем тебе наш??

Ну вопервых в вышем хаке много интересных штучек, вовторых людям (в случае если у меня что-нибудь получится) не надо будет качать очень большой хак ( я имею ввиду тех у кого естиь "Пр. Лев."), ну а в третих мне это нужно ещё и в образовательных целях. Проблемы с вашим хаком у меня возникали и с другими хаками, поэтому устраню их в этом случаю, смогу устранить в другом. Вот. unsure.gif

yes.gif yes.gif yes.gif
Lemegeton
В этом году ничего больше делать не могу. Вернусь с попоек, буду ковыряться.

Все. Ухожу на каникулы. До 11.01.2005. Всем удачно встретить Новый Год! drinks.gif alcoholic.gif friends.gif
Goblin
2Lemegeton :

"Позволь не согласиться, дабы стреле скорость придать нужно ей придать ускорение, оно, извини от твоей силы зависит. Ловкость это, скорее, точность действий. Хотя, если в глаз с пяти метров засадить - тут силы много не потребуется. " ---- а я думал что скорость стрелы зависит от так сказать тетивы лука (если тетиву хрен натянешь то и скорость стрелы если натянешь будет огого, а если это резинка от трусов а не тетива, то и стрела полетит соответственно как говно по параболе, а не как стрела) -- если ты это имел ввиду то да - тут от силы зависит. Но ведь урон из лука зависит не только от натяга тетивы (что у нас приравнивается к скорости стрелы и мощности выстрела), а еще от массы стрелы (кстати, может стрелы +1, +2, +3 просто поменять на названия с разными массами стрел - ИМХО больше реалистичности) и от того куда именно направлена эта стрела - а это в свою очередь зависит как раз от ловкости. У лучника вроде все таки берется силы 14 - 16 ... в среднем, что ИМХО как раз хватает для удовлетворения требований по силе натяга тетивы для разных луков, а вот чем больше ловкость (т.к. в НВН нету таких понятий как меткость, восприятие и т.д. то все они входят в ловкость - ЭТО МОЕ ИМХО) - тем больше шанс того что лучник засадит свою тетиву в какое-нить сочленение доспехов и сильно ослабит или сразу завалит супостата. Кроме того некоторые стрелы можно сделать против определенного типа доспехов - я где то читал что для пробивания тяжелых копейщиков (эдакие маленькие танки в фуллплейтах) использовались тяжелые стрелы с тупыми наконечниками которые выпускались из луков с достаточно большой силой натяжения и с достаточно близкого расстояния - при лобовом ударе (прямо в душу) - стрела прошибала копейщика навылет.

"Например?" --- вот и я не мог вспомнить. Но теперь все ясно.

"А при мультиклассе у тебя за каждый класс этот фит давать будут." --- может я чего то не вижу, но чем это плохо ?

"А всего остального можно и не делать..." -- угу и тогда девастат на все будет работать от ловкости, а не от силы = 5 баллов (для двуручного топора например black eye.gif ). Или в девастате есть часть которая отвечает именно за ранжед оружие? Кроме того - для взятия девастата на ранжед оружие нужно чтобы ловкости было 25, а не силы, а то получится допустим - чтобы взять девастат - силу надо взять 25, а модификатор девастата будет учитываться исходя из ловкости персонажа --- crazy.gif вот это будет подстава.

"Это я дабы не быть голословным сделал. Чтобы не подумали, что от балды свое IMHO выложил." - ето быль сарьказьм с моей стороны без желания обидеть слушающего (читающего в нашем случае biggrin.gif )


2K.SpecTr

- ну ничаго ничаго - вот получишь ответ в таком же виде - типа я тоже ведь писать буду, а не читать -- воть тадыть и поговоримс diablo.gif

Дык у тебя получается что меню (в данном случае РДД) появляется с появлением перегара, ясен пень что если что-то раньше перегара в этом меню появляется - ты этим пользоваться не сможешь пока перегара не будет. Ты привяжи появление классового меню к тому что раньше появляется ... и все должно заработать .... (или я опять что-то не понял unsure.gif = вот что я действительно не понял - это как можно сделать так что РДД получает все свои классовые возможности без перегара (отключение перегара как фита не рассматривается) dntknw.gif )
K.SpecTr
QUOTE (Goblin @ Dec 30 2004, 15:04)
- ну ничаго ничаго - вот получишь ответ в таком же виде - типа я тоже ведь писать буду, а не читать -- воть тадыть и поговоримс

Уже получал biggrin.gif
QUOTE (Goblin @ Dec 30 2004, 15:04)
или я опять что-то не понял  = вот что я действительно не понял - это как можно сделать так что РДД получает все свои классовые возможности без перегара

На этот раз в точку. А без огн.дыхания он свои возможности получает спокойно - это не проблема.
QUOTE (Goblin @ Dec 30 2004, 15:04)
Ты привяжи появление классового меню к тому что раньше появляется

Собственно вопрос - КАК? Я не нашел где она эта привязка вообще есть.
Клемент Астилон
Солидно... Респект. Только вот проблема с появлением фита в радиальном меню бывает часто...
С нетерпением жду classes.2da думаю будет также информативно.
good.gif good.gif good.gif
K.SpecTr
Clement Astilon
Напросился biggrin.gif
Делаем классы.
Сперва разбор таблиц, затем проблемы, с которыми я столкнулся (собственно из-за проблем и пишу, а то до возвращения Lemegeton'a не вытерплю smile.gif). Замечания приветствуются.
classes.2da - Первая таблица и главная (что логично)

Id,Label - ид строки и текстовая метка класса
QUOTE (Lemegeton)
как и везде  biggrin.gif

Name - ссылка в файле tlk на имя класса
Plural - ссылка в файле tlk на множественное число
Lower - ссылка в файле tlk на lowercase написание
Description - ссылка в файле tlk на описание класса
Icon - имя ресурса с иконкой класса
HitDie - какой кубик кидаем для хитов при получении уровня (10 значит d10)
AttackBonusTable - имя CLS_ATK_*.2da таблицы, в которой указана зависимость увеличения базового модификатора атаки от уровня персонажа
FeatsTable - ссылка на соответствующую cls_feat_***.2da таблицу, из которой берутся доступные классу фиты
SavingThrowTable - ссылка на соответствующую CLS_SAVTHR_***.2da таблицу, в которой перечислены сэйвы данного класса по уровням
SkillsTable - ссылка на соответствующую таблицу CLS_SKILL_***.2da, в которой перечисляются доступные и классовый навыки(скилы) класса
BonusFeatsTable - ссылка на соответствующую CLS_BFEAT_***.2da, в которой перечисляются дополнительные фиты для класса. Если я не ошибаюсь, то именно эта таблица отвечает за получение "внеплановых" фитов для каждого 5-го уровня мага и каждого 2-го файтера.
SkillPointBase - количество очков навыка, получаемых классом при повышении уровня, при нулевом модификаторе INT'а
SpellGainTable - ссылка на соответствующую CLS_SPGN_***.2da, отвечающая за количество доступных слотов заклинаний и их максимальный уровень для конкретного уровня опыта
SpellKnownTable - ссылка на соответствующую CLS_SPKN_***.2da, отвечающую за максимальное количество заклинаний, которые может выучить Сорк/Бард для конкретного уровня опыта
PlayerClass - если 1 - то игрок может выбрать этот класс, если 0 - то нет.
SpellCaster - если 1 - то для данного класса доступны заклинания и он может их использовать, если 0 - то нет. (также это и навык UMD отвечает за возможность кастовать со свитков, ?требует описания в spells.2da?)
Str - если игрок нажмет клавишу "recommended" при выборе характеристик, то его сила станет такой.
Dex,Con,Wis,Int,Cha - аналогично. Важно! сумма всех шести не зависит от 30-ти очков, которые даются для распределения, и при нажатии "recommended" оно принимается равным нулю. Если стоит ограничение "Single Player Enforce Legal Characters=1", то персонаж вызовет ошибку)
PrimaryAbil - Основная из шести, по ней мы получаем бонусы к заклинаниям и XP, она же растет при "recommended" на повышении уровня.
AlignRestrict - задает ограничения на характер: даже не знаю что сказать black eye.gif (как бы я их не менял, никаких изменений в игре я не заметил, видать опять глюки)
Но если верить тому что пишут, то:
0x0 - All
0x01 - Neutral
0x02 - Lawful
0x04 - Chaotic
0x08 - Good
0x10 - Evil
Для получения комплексных запретов складываем, если число большое значит пора смотреть строку InvertRestrict.
Паладин имеет LG -> 01(по обеим шкалам, см. AlignRstrctType)+04+10=0x15
AlignRstrctType - по какой шкале запрещаем характер (особенно важно для нейтралов): 0x0-none(ни по какой), 0x1-law/chaos, 0x2-good/evil, 0x3-both(и то, и другое)
InvertRestrict - инвертировать запреты (0-нет, 1-да), если много запретов, то ставим 1 и идем от обратного.
Constant - имя константы CLASS_TYPE_***, используется например в сравнении с результатами GetClassByPosition()
EffCRLvl01,EffCRLvl02,...,EffCRLvl20 - Рейтинг крутости класса для заданного уровня, используется для определения коэффициента на получение опыта, а также для сравнения с монстрами, т.е. чем он выше тем менее "impossible" будет писаться в описании монстров.
PreReqTable - мое любимое, ссылка на соответствующую CLS_PRES_***.2da, отвечающую за требования, которые выдвигаются к персонажу для взятия уровня в этом классе (помимо мировозрения).
MaxLevel - максимальный уровень, который персонаж может набрать в этом классе, при 0 действует ограничение ядра, иначе(1..40) выбранный уровень (ставить 41 и выше бессмысленно, хотя в сумме с кое-какими другими изменениями можно добиться отмены ограничения в 40 уровней)
XPPenalty - учитывается ли этот уровень при вычислении пенальти к получаемому опыту за мультиклассовость (0-нет, 1-да).
ArcSpellLvlMod - если в этой строке стоит число отличное от 0, то оно определяет количество уровней дданного класса, за которые дается продвижение на 1 уровень по таблице, указанной в SpellGainTable наивысшего класса арканного заклинателя для класса заклинателя соответственно (начиная с 1-го), при этом уровень этого класса не изменяется. (т.е. если стоит 2, то на уровнях 1,3,5... будут добавляться слоты другому магическому классу, или этому - если он магический и выше по уровню).
DivSpellLvlMod - аналогично для слотов клирических заклинаний, ?тут у меня снова будет вопрос?.
EpicLevel - ограничение на максимальный уровень класса, до тех пор пока персонаж не станет эпическим. (т.е. не будучи эпиком нельзя выбрать этот класс при повышении уровня, если текущий его уровень равен указанному числу)
Package - идентификатор данного класса для пакаджей (см. ниже)
<small>Добавлено в 23:34</small>
Заметили как много *.2da таблиц отсюда ветвятся, одну забудешь и нету класса.
Идем дальше:

CLS_PRES_***.2da - табличка PreReqTable требований престиж-классов, помимо прямого описания необходимых фитов, численного значения навыков, здесь можно сравнивать переменные, полученные от скриптов (активно использовалось в SoU)

Id,LABEL - Id и метка
ReqType - Параметр, который нужно сравнить с некоторым значением (можно считать это функциями, возвращающими TRUE или FALSE), если результат истинна, то можем выбрать этот класс при повышении уровня.
ReqParam1 - первый параметр функции ReqType
ReqParam2 - второй параметр функции ReqType

Сейчас возможные функции не говорю, но если кому-нибудь интересно могу описать. Нужно?

packages.2da - очень важная табличка для того, чтобы наш класс заработал (я о ней забыл и получил кучку проблем)

Id,Label - Id и метка
Name - ссылка в файле tlk на имя пакаджа класса
Description - ссылка в файле tlk на описание пакаджа класса
ClassID - идентификатор класса, для которого этот пакадж, должен совпадать с полем Package в classes.2da (собственно это связь)
Attribute - по смыслу совпадает с PrimaryAbil в classes.2da
Gold - количество золота, которое получает персонаж при старте
School - школа заклинаний для арканных кастеров, учитывается при определении доступных заклинаний в spells.2da (дает ограничения и запреты, значение равно указанному в spellschools.2da +1, т.к. 0-значит нет ограничений) ?не могу понять почему бард имеет ограничение по Трансмутации?
Domain1 - выбранный домен номер раз у клириков
Domain2 - номер два
Associate - идентификатор для фамилиара из таблицы hen_familiar.2da для визарда/сорка или для компаньона из hen_companion.2da для друида.
SpellPref2DA - имя таблицы PackSP***.2da с заклинаниями, которые будет знать персонаж данного класса (для арканных кастеров)
FeatPref2DA - имя таблицы PackFT***.2da c фитами, которые будут выбранны персонажем
SkillPref2DA - имя таблицы PackSK***.2da c распределением очков навыка. Эти три строки задают то, что будет получаться при нажатии "recommended", а иначе вас ждет краш (оч. неприятный)
Equip2DA - имя таблицы PackEQ***.2da, указывающей какие итемы будут даны персонажу в инвентарь в начале игры.
Soundset - id в soundset.2da, указывающий на звуковой пресет персонажа (0 по умолчанию)
<small>Добавлено в 23:41</small>
Вопросы будут чуть позднее.
И связаны они в первую очередь с созданием кастеров и связью с spells.2da
Клемент Астилон
Не плохо. Респект.
Можно уже потихоньку оформлять в русский мануаль по 2да smile.gif
Lex
Clement Astilon, займешься этим?
<small>Добавлено в 13:27</small>
ДО КУЧИ:
CODE

__________________________________________________________
__________________________________________________________

Обшие столбцы:
ID(пустой столбец) - итендификатор, используется чаще всего для

ссылки на другие 2да, причём само число неважно,- т.к учитывается

лишь номер строки, однако полезно.

Description/STR_REF/Name - текстовая информация (описание,название и

т.д) В качестве значения указывается ссылка на ID из *.tlk файла.

LABEL - внутригровое имя, иногда используется для ссылок в 2да но

чаще просто как удобное обозначение.
____________________________________________________
ammunitiontypes.2da

Model - имя файла модели

ShotSound - звук при выстреле

ImpactSound - звук при попадании
____________________________________________________
apperance.2da

NAME - имя используюшееся для принадлежности данной модели

персонажа

RACE - имя файла с моделью.

ENVMAP - текстура которая будет использоваться для создания эффекта

отражения.

BLOODCOLR - цвет крови: R - красный, G - зеленый, W - белый, O -

оранжевый, Y - желтый, B - голубой, P - пурпурный.

MODELTYPE - тип модели: P - модель игрока, F - модель с "полным"

набором анимации, S - модель с набором анимации creature (монстры,

животные), L - модель с набором анимации creature, но с анимацией

оружия.

WEAPONSCALE - визуальное увеличение/уменьшение оружия( 1 - без

изменений).

WING_TAIL_SCALE - визуальное увеличение/уменьшение "крыльев"

существа.

HELMET_SCALE_M - визуальное увеличение/уменьшение шлема (мужск)

HELMET_SCALE_F - визуальное увеличение/уменьшение шлема (женск)

MOVERATE - скорость передвижения.(численые значения этих переменных

см. в creaturesspeed.2da).

WALKDIST - перемешение при ходьбе.

RUNDIST - перемешение при беге.

PERSPACE,CREPERSPACE - расстояние на которим могут находиться

персонажи друг от друга.

HEIGHT - высота ???


HITDIST - расстояние удара

PreFatCKDist - растояние атаки без использования оружия.

TARGETHEIGHT - высота цели(а точнее тип атаки H или L ).

ABORTONPARRY - ???

RACIALTYPE - расса

HASLEGS, HASARMS -соответственно определяют есть ли у перонажа ноги

и руки.

PORTRAIT - портрет по умолчанию.

SIZECATEGORY - размер, ID из creaturesize.2da

PERCEPTIONDIST - дистанция обнаружения(появления).

FOOTSTEPTYPE - звук при ходьбе (ID из Footstepsounds.2da)

SOUNDAPPTYPE - остальные звуки персонажа (ID из apperancesndset.2da)

HEADTRACK - возможность поворачивания головы в сторону других

персонажей .

HEAD_ARC_H и HEAD_ARC_V - соответственно углы поворота.

HEAD_NAME - название обьекта головы в MDL модели персонажа.

BODY_BAG - набор сокровишь ( ID из Bodybag.2da).

TARGETABLE - определяет может ли данная модель выбираться в качестве

цели.(подсвечиваться)
_________________________________________
apperancesndset.2da

ArmorType - тип брони

WeapTypeL,WeapTypeR,WeapTypeS,WeapTypeClsLw,WeapTypeClsH,WeapTypeRch

,FallFws, FallBck - звук звучащий при соответствующих

ударах/падениях ( ИД из

Looping - постоянно повторяющийся звук
_________________________________________
areaeffects.2da

SHAPE - Способ задания формы зоны: R- прямоугольник, C - круг.

RADIUS - радиус круга (если используется круг)

WIDTH, LENGTH - ширина и длина квадрата.

ONENTER - скрипт выполняемый при входе в зону

HEARTBEAT - скрипт периодически выполняемый когда объект находится в

зоне.

ONEXIT - скрипт выполняемый при покидании зоны.
_________________________________________
Armor.2da

ACBONUS - общий бонус АС

DEXBONUS - максимальный бонус от ловкости

ACCHECK - пенальти к скилам

ARCANEFAILURE% - процент "провала" заклинания

WEIGHT - вес

COST - цена
_________________________________________
Baseitems.2da

InvSlotWidth - занимаемое место в инвентаре - ширина.

InvSlotHeight - занимаемое место в инвентаре - высота.

EquipableSlots - слоты в которые можно экипировать данный предмет:
0x00000 – не экипируемое
0x00001 - шлем
0x00002 - броня
0x00004 - обувь
0x00008 - перчатки
0x00010 - расходуемое оружие
0x00020 - щит
0x00030 - Дистанционное оружие
0x00040 - плащ
0x00180 - кольцо
0x00200 - амулет
0x00400 - пояс
0x00800 - стрелы
0x01000 - заряды для пращи
0x02000 - заряды для арбалета
0x1C000 - оружие существа
0x1C010 - двуручное оружие
0x1C030 - одноручное оружие
0x20000 - броня существа (щкура)

CanRotateIcon -возможность поворачивать в окне редактора.

ModelType - тип модели
1 - используется только для шлема
2 - составная модель
3 - броня
0 - выборачная модель (выбирается иконка модели, а вместе с ней

подставляется и модель).

ItemClass - имя модели (для разных типов моделей, свои правила в

именах).

GenderSpecific - определяет зависит ли выбор модели от пола

персонажа.

Part1EnvMap, Part2EnvMap, Part3EnvMap - текстура отражения

соответственно для 1-й 2-й и 3-й частей модели.

DefaultModel - модель по умолчанию.

DefaultIcon - иконка по умолчанию.

Container - определяет является ли модель контейнером.(можно ли туда

что-то положить).

WeaponWield - определяет тип анимации для этой модели:
1 - без типа анимации (предметы которые носят )
2 -
3 -
4 - копья и т.д
5 - Лук
6 - арбалет
7 - шит
8 - двухсторонние мечи и т.д
9 - оружие существ
10 - дарты и праща (гранаты)
11 - Сюрикены, метательные топоры
**** - стандартное оружие



WeaponType - тип урона от оружия
1 - колющий
2 - дробящий
3 - режущий
4 - колющий и режущий

WeaponSize - размер окужия
1 - мелкий
2 - маленький
3 - средний
4 - большой

RangedWeapon - дистанционное оружие(ID амуниции из этого же файла).

PrefAttackDist, MinRange, MaxRange, NumDice, DieToRoll, CritThreat,

CritHitMult - стандартный харак-ки оружия .

CritThreat - вероятность нанесения критического удара
1 - d20
2 - d19-20
3 - d18-20
и т.д

BaseCost - базовая цена.

Stacking - по сколько штук может храниться (например стрелы 99).

InvSoundType - звук в инвентаре (ID из Inventorysnds.2da).

StorePanel - определяет в какой группе находится предмет у торговца
0 - броня
1 - оружие
2 - эликсиры
3 - маг. вещи
4 -

ReqFeat0, ReqFeat1, ReqFeat2, ReqFeat3, ReqFeat4 - требуемые фиты(

ID из Feats.2da)

AC_Enchant, BaseAC, ArmorCheckPen -снова хар-ки оружия.

ChargesStarting - количество зарядов.

RotateOnGround - возможность поворота на земле.

TenthLBS - Вес.

WeaponMatType - тип материала оружия.(используется в основном для

определения звука и т.д)

AmmunitionType - тип аммуниции (ID из ammunutiontypes.2da).

ArcaneSpellFailure - вероятность срыва закленания

%AnimSlashL, %AnimSlashR, %AnimSlashS - вероятность проигрования

одного из типов анимации.

ILRStackSize - почти тоже что и Stacking.
__________________________________________
Classes.2da
HitDie - хитов на уровень (думаю понятно)
AttackBonusTable - имя таблицы BAB (Base Attack Bonus) см. любую из них там всё просто.
FeatsTable - имя таблицы фитов (о ней ниже)
SavingThrowTable - таблица спасс бросков (там тоже всё понятно)
SkillsTable - таблица скилов.
BonusFeatsTable - таблица бонусных фитов (привет из ХоТУ .. - дополнительная таблица по фитам)
SkillPointBase - сколько скил пойнтов получает этот класс не считая всяких там бонусов за интелект и т.д.
SpellGainTable - таблица спеллов которые "даются" - т.е слоты для спеллов.
SpellKnownTable - таблица спеллов которые "может применить" - т.е как сорк Н-дцать спелов опред левла.
PlayerClass - может ли игрок использовать этот класс.
SpellCaster - и так понятно, 1 - класс спелкастер, 0 - нет.
Str,Dex,Con,Wis,Int,Cha - "рекомендуемые" параметры.
PrimaryAbil - основная для класса характеристика (я точно не уверен но кажется она как-то влияет на опыт)
AlignRestrict - ограничитель на alignment: 0x01 = NEUTRAL, 0x02 = LAWFUL, 0x04 = CHAOTIC, 0x08 = GOOD, 0x10 = EVIL.
AlignRstrctType - дополнение к первому, но влияет как бы сказать на линию: 0x01 = lawchaos, 0x02 = goodevil, 0x03 = оба.
Constant - константа класса, впринцепе очень нужна только для скриптов.
EffCRLvl1-20 - эффективный уровень, вляет на опыт персонажа.
PreReqTable - таблица требований престижа
MaxLevel - максимальный уровень в классе.
XPPenalty - пеннальти за мультиклассовость
ArcSpellLvlMod, DivSpellLvlMod - эффективный уровень кастера.
EpicLevel - когда становиться эпиком.
Package - пресеты.

cls_atk_* - таблица изменения BAB (Base Attack Bonus)
cls_bfeat_* - таблица получения "бонусных" фитов
___________________________________
cls_feat_* - таблица отвечающая за набор фитов для каждого класса.

___________________________________
cls_pres_* - набор "ограничений" для класса

ReqType - тип переменной (тип требования)
ReqParam1, ReqParam2 - требуемый параметр 1 и 2 соответственно.
Наборы примерно такие:
FEAT - фит/ в качестве параметра указывается ИД из Feat.2da
FEATOR - один из фитов/ в качестве параметра указывается ИД из Feat.2da
RACE - расса/ в качестве параметра указывается ИД из Racialtypes.2da
BAB - собственно BAB/ в качестве параметра указывается число
ARCSPELL - возможность колдовать тайные (arcane) заклинания/ в качестве параметра указывается требуемый уровень заклинаний
SKILL - скилл/ в качестве первого параметра указывается ИД из Skills.2da, в качестве второго необходимое значение скилла
CLASS - класс/ в качестве параметра указывается ИД из Сlasses.2da
CLASSOR - один из классов/ в качестве параметра указывается ИД из Сlasses.2da
VAR - локальная переменная на персонаже/ в качестве первого параметра указывается имя переменной, в качестве второго необходимое значение
DIVSPELL -?
SKILLOR - ?

____________________________________
cls_savthr_* - таблица спасов для каждого класса.
Level - уровень игрока
FortSave -
RefSave -
WillSave -
____________________________________
cls_skill_* - таблица скиллов для каждого класса
SkillLabel - внутр. название скила
SkillIndex - ИД из Skills.2da
ClassSkill - определаяет расход скил пойнтов на скилл
____________________________________
creaturesize.2da -
ACATTACKMOD - модификатор атаки.
____________________________________
creaturspeed.2da
2DAName - имя используемое в других 2да
WALKRATE - частота шагов (перемещение при этом указывается в appernace.2da)
RUNRATE - частота бега (перемещение указывается в apperance.2da)
____________________________________
damagehitvisual.2da
VisualEffectID - виз.эффект для оружия ближнего боя (итендификатор из visualeffects.2da )
RangedEffectID - виз.эффект для оружия дальнего боя ( итендификатор из visualeffects.2da )
____________________________________
defaultacsounds.2da
Label - собственно АС
ArmorType - тип брони (см.
____________________________________
des_ *
/////////////////////////////////////
____________________________________
Disease.2da
First_Save -
Subs_Save -
Incu_Hours -
Dice_1 -
Dam_1 -
Type_1 -
Dice_2 -
Dam_2 -
Type_2 -
Dice_3 -
Dam_3 -
Type_3 -
Type -
End_Incu_Script -
24_Hour_Script -
__________________________________
domains.2da
Level_1-9 - определяет халявные заклинания,
GrantedFeat - каким фитом даётся домен ?????
CastableFeat -
__________________________________
doortypes.2da
Model - модель двери
TileSet - тайлсет к которой она относится
TemplateResRef - ресреф модели по умолчанию (если имееется)
StringRefGame -
BlockSight -
VisibleModel - видимость модели
SoundAppType - звук ( ИД из
__________________________________

......................
__________________________________
Feat.2da
FEAT - имя фита (ид из tlk)
MINATTACKBONUS - минимальный BAB для получения фита.
MINSTR, MINDEX, MININT, MINWIS, MINCON, MINCHA - мин. характеристики.
MINSPELLLVL - минимальный уровень заклинаний
PREREQFEAT1, PREREQFEAT2 - требуемый фит, для взятия этого.
GAINMULTIPLE - можно ли брать фит несколько раз. (1-да 0 - нет)
EFFECTSSTACK - "накапливаемость" фита
ALLCLASSESCANUSE - может ли фит использоваться всеми классами
CATEGORY -
MAXCR -
SPELLID - ид из Spells.2da (фактически там указывается действие фита)
SUCCESSOR -
CRValue -
USESPERDAY - сколько раз в день можно использовать фит.
MASTERFEAT -
TARGETSELF -
OrReqFeat0 - почти то же что и PREREQFEAT1, но требуется только один из них, а не обязательно оба
REQSKILL - требуемый скилл (ИД из
ReqSkillMinRanks - требуемое минимальное значение скила
Constant - константа фита
TOOLSCATEGORIES -
HostileFeat -
MinLevel - минимальный требуемый уровень игрока.
MinLevelClass - класс для минимального требуемого уровня игрока.
MaxLevel - максимальный уровень (после него фит нельзя взять)
MinFortSave -
PreReqEpic - требование к "эпичности" персонажа.
__________________________________
footstepsounds.2da
Label - тип персонажа
Dirt0, Grass0, Stone0 и далее - это типы поверхности (указываются звуковые файлы шагов, для этих поверхностей)
__________________________________
genericdoors.2da
//////////////////////////////
__________________________________
hen_companion.2da
BASERESREF - ресреф с хенчем (имя стандартного utp файла)
__________________________________
IPRP_ * - эти файлы отвечают за некоторые инструменты и функции в тулсете, большенство из них несут просто текстово/ресрефовую информацию, но некоторые черезвычайно полезны, в основном за счёт так называемого модификатора цены cost, а так же возможности дополнить их недоступными ранее свойствами либо разрешить использование каких либо ранее запрещённых свойств, например:
iprp_lightcost.2da
Если в нём изменить значение Cost = 0.5 у Type:_Bright_(20m), на скажем (минус) "- 10", - то добавление у свойств предмета самого яркого света, будет не увиличевать стоимость предмета (как в голдах, так и в левлах), а наоборот понижать её.
Или к примеру, можно расширить список iprp_onhitspell.2da, что бы добавить новые (возможно даже самодельные) спеллы к оружию.
__________________________________
parts_*
COSTMODIFIER - множитель цены
ACBONUS - бонус к АС

А так же в случае с parts_robe.2da
HIDEFOOTR, HIDEFOOTL и т.д - определяют какие части модели брони скрывать при использовании робы.
__________________________________
placeableobjsnds.2da
ArmorType - тип материала из которого изготовлен плейсибл.
Opened - звук при открытии плейсибла
Closed - соответственно при закрытии
Destroyed - уничтожении
Used - использовании
Locked - запирании
__________________________________
placeable.2da
/////////////////////////////////////////////////////
__________________________________
poison.2da
Save_DC
Handle_DC
Dice_1
Dam_1
Default_1
Script_1
Dice_2
Dam_2
Default_2
Script_2
Cost
OnHitApplied
VFX_Impact
__________________________________
polymorph.2da
AppearanceType - модель для замены (ИД из apperance.2da)
RacialType - раса (ИД из RacialTypes.2da)
PortraitId - портрет (ИД из Portraits.2da)
Portrait - прямое имя портрета
CreatureWeapon1 - оружие существа (файл либо ресреф)
HideItem - броня в слоте Hide(шкура) (файл либо ресреф)
EQUIPPED - экиперовка оружием (файл либо ресреф)
STR, CON, DEX - приобретаемые характеристики
NATURALACBONUS - бонус к АС
HPBONUS - бонус к НР
SoundSet - набор звуков (ИД из
SPELL1, SPELL2, SPELL3 - активные фиты (спеллы) приобретаемые с полиморфом(ИД из spells.2da)
MergeW - остаётся возможность менять оружие
MergeI - остаётся возможность менять предметы (кольца, амулеты и т.д)
MergeA - остаётся возможность менять броню
__________________________________
portraits.2da
///////////////////////////////////////
__________________________________
race_feat_*
FeatLabel - название фита.
FeatIndex - ID из Feats.2da
__________________________________
racialtypes.2da
Abbrew - Сокращенное название.
Name - имя расы.
NamePlural - имя во множественном числе.
Description - описание.
Appearance - дефолтная модель.(ID из Appearance.2da)
StrAdjust - поправка на силу.
DexAdjust - то же для ловкости.
ConAdjust - для телосложения.
IntAdjust - для интеллекта.
WisAdjust - для мудрости.
ChaAdjust - для харизмы.
Favored - Favorite Class для этой расы. ( ID класса из classes.2DA.)
FeatsTable - таблица фитов рассы.
Biography - биография. (ID из dialog.tlk).
PlayerRace - может ли игрок выбрать расу.
Constant - константа рассы.
Age - примерный возраст.
__________________________________
restduration.2da
LABEL - уровень
DURATION - длительность отдыха
__________________________________

skills.2da
Untrained - подготовленость в данном скиле.
KeyAbility - ключевая характеристика для скилла. ( STR (сила), DEX (ловкость), CON (телосложение), INT (интеллект), WIS (мудрость), CHA (обаяние).)
ArmorCheckPenalty - дает ли пенальти надетая броня при использовании скилла. 0 — нет, 1 — да.
AllClassesCanUse — все ли классы могут использовать этот скил. Если поставить 0 — нет, если 1 — да.
Constant - константа умения.
HostileSkill -

__________________________________
Sound*
//////////////////////////////////////////////////////////////////
__________________________________
spells.2da
////////////////////////////////////////////////////////////////// форум
__________________________________
spellschools.2DA
Letter - буква идентификатор школы(исп-ся для других 2da)
StringRef — имя в игре (ID из tlk)
Opposition — противоположная школа магии. ( ID другой школы ).
Description — описание(ID из tlk)
__________________________________
surfacemat.2da
Label - тип поверхности
Walk - можно ли ходить по данной местности (1-да 0 -нет)
WalkCheck -
LineOfSight - используется ли на данном типе местности LineOfSight
Sound - звук издаваемый на данной поверхноти (значение из
IsWater - определяет воду
Visual - виз. эффект на месте следов (да и сами следы в том числе)
__________________________________
*_edge.2da
////////////////////////////////////////////////////////////////
__________________________________
traps.2da
TrapScript - скрипт ловушки
SetDC -
DetectDCMod -
DisarmDCMod -
TrapName -
ResRef -
IconResRef -
__________________________________
vfx_persistent.2da
/////////////////////////////////////////////////////////////////
__________________________________
visualeffects.2da
Type_FD - тип эффекта:
f - fire and forget
d - duration
b - beam
p - permament

OrientWithGround -
Imp_HeadCon_Node - модель эффекта которая будет прикреплина к хелперу head (т.е голове)
Imp_Impact_Node - модель эффекта которая будет прикреплина к хелперу Impact (который находится на туловище)
Imp_Root_S_Node, Imp_Root_M_Node, Imp_Root_L_Node, Imp_Root_H_Node - модель которая будет прикреплина к Root-у, где S,M,L,H - для разных размеров персонажа.
ProgFX_Impact -
SoundImpact - звук при
ProgFX_Duration -
SoundDuration - длительность звука
ProgFX_Cessation -
SoundCessastion - звук при
Ces_HeadCon_Node - модель эффекта которая будет прикреплина к хелперу head (т.е голове) при ...
Ces_Impact_Node - модель эффекта которая будет прикреплина к хелперу Impact (который находится на туловище) при ...
Ces_Root_S_Node и т.д -
ShakeType - тип эффекта "землетрясения"
ShakeDelay - задержка "землетрясения"
ShakeDuration - длительность "землетрясения"
LowViolence -
LowQuality -
___________________________________
weaponsounds.2da
//////////////////////////////////////////////////////////////////
___________________________________
продолжение пишется ...
то описание чего отсутствует или помеченно //////////, - будет в скором времени дополнено.
___________________________


ICE BLADE
Клемент Астилон
Да пожалуй займусь.
Хорошие описания, Респект smile.gif
Lex
Было бы ОЧЕНЬ здорово.
Наверное в тутор надо все таблицы разобрать (каждый столб что значит) и примеры.
Чем больше, тем лучше. В идеале для каждой таблицы пример кастомной строки.
Так намного легче изучать.
Vhall
Хм, где здесь Айс публиковал список безопасных ID для 2da'шек? Очень нужно racialtypes и appearance
DBColl
Vhall’rafein
Это есть среди статей у нас на сайте вроде бы... Просмотри, будет быстрее. wink.gif
K.SpecTr
Спасибо за мастера, дали в тихую - я и не заметил. biggrin.gif
Lex
"Куча" - это хорошо, но лучше мы это все здесь детально разберем, для редактирования неточностей и пропусков.
Ну да ладно, продолжаем с классами.

Еще немножко таблиц, нужных для создания класса (они простые, но есть моменты)

CLS_ATK_*.2da - таблица зависимости базового модификатора атаки от уровня персонажа
Level - Это не ид, а уровень персонажа (столбец не имеет метки, 0=1-му уровню)
BAB - базовая атака для этого уровня
CLS_ATK_1.2da - таблица для файтеров
CLS_ATK_2.2da - таблица для клириков
CLS_ATK_3.2da - таблица для магов

CLS_BFEAT_***.2da - таблица задающая получение дополнительных фитов персонажа
Level - уровень персонажа
Bonus - количество дополнительно получаемых фитов на этом уровне

CLS_SAVTHR_***.2da - таблица, задающая зависимость сэйвов данного класса от уровня
Id - Ид
Level - уровень персонажа
FortSave - соответствующий уровню спас.бросок по стойкости
RefSave - соответствующий уровню спас.бросок по рефлексам
WillSave - соответствующий уровню спас.бросок по воле

CLS_SKILL_***.2da - таблица, задающая классовые и внеклассовые навыки персонажа
Id - Ид
SkillLabel - метка(название) навыка
SkillIndex - индекс навыка в таблице skills.2da
ClassSkill - является ли навык классовым (1-да и стоит одно очко для повышения; 0-нет и стоит 2 очка)
Замечание: Если какие-то навыки надо сделать недоступными классу, то соответствующие строки не должны включаться в таблицу (например, UMD)
Кроме того, надо редактировать таблицу skills.2da (будет ниже)

CLS_SPGN_***.2da - таблица зависимости доступных слотов заклинаний от уровня персонажа
Id - Ид
Level - уровень персонажа
NumSpellLevels - текущий максимальный уровень заклинаний (1..10, т.к. кэнтрипы считаются 1-го уровня)
SpellLevel0,SpellLevel1,...,SpellLevel9 - количество доступных слотов для заклинаний данного уровня (а тут кэнтрипы считаются 0-го уровня)
Значение **** вместо нуля, это так к слову.

CLS_SPKN_***.2da - таблица, задающая максимальное количество заклинаний в книге, которые может выучить Сорк/Бард для конкретного уровня опыта
Id - Ид
Level - уровень персонажа
SpellLevel0,SpellLevel1,...,SpellLevel9 - количество доступных для изучения заклинаний соответствующего уровня при повышении уровня персонажа
Совет: не ставте число большее, чем число всех возможных заклинаний данного уровня - результат может быть непредсказуемый.
Можно ставить меньшее число, чем на предыдущем уровне - персонаж должен будет отказаться от заклинаний (у меня просто обрезало последнее известное заклинание)

PackSP***.2da - таблица с заклинаниями, выбираемыми персонажем по умолчанию
Id - Ид
SpellIndex - индекс заклинания в spells.2da
Label - текстовая метка заклинания
Замечание: Это не только заклинания в книге, но и "любимые" по приоритету для кастования (так что табличку для клериков тоже делать прийдется)

PackFT***.2da - таблица c фитами, которые будут выбранны персонажем по умолчанию
Id - Ид
FeatIndex - индекс фита в feat.2da
Label - текстовая метка фита
Замечание: Нужно перечислить все возможные для класса фиты (а их может быть ой как много), т.к. этот приоритет выбора должен учитывать фиты, выбранные вручную
Замечание 2: В принципе можно и не все, но тогда есть шанс краша (хоть его вероятность близка к нулю), но обязательно не меньше чем максимальное количество фитов, которые может выбрать персонаж на максимальном уровне (из доступных).

PackSK***.2da - таблица c распределением очков навыка по умолчанию (точнее приоритета навыков)
Id - Ид
SkillIndex - индекс навыка в skills.2da
Label - текстовая метка навыка
Замечание: если все перечисленные в таблице навыки уже нельзя повышать, то очки навыков останутся не распределенными.

PackEQ***.2da - таблица, перечисляющая все итемы в стартовом инвентаре персонажа
Id - Ид
Label - таг вещи, например NW_IT_TORCH001 для факела (хотел бы я знать где они все перечисляются, ведь где-то же они это делают)

Дальше больше...
Vhall
DBColl
В статьях нет и тему 2da FAQ удалили (распределили). Весело biggrin.gif
Ice Blade
ambientmusic.2da - 150
ambientsound.2da - 200
ammunitiontypes.2da - 75
appearance.2da - 750
appearancesndset.2da - 50
baseitems.2da - 200
bodybag.2da - 20
chargenclothes.2da - 40
classes.2da - 50
creaturesize.2da - 20
crtemplates.2da - 20
defaultacsounds.2da - 20
disease.2da - 30
domains.2da - 50
doortypes.2da - 300
effecticons.2da - 175
environment.2da - 50
feat.2da - 2000
footstepsounds.2da - 30
genericdoors.2da - 20
hen_companion.2da - 20
hen_familiar.2da - 20
iprp_feats.2da - 50
iprp_spellcost.2da - 300
iprp_spells.2da - 750
itempropdef.2da - 150
itemprops.2da - 150
loadscreens.2da - 150
masterfeats.2da - 30
metamagic.2da - 20
packages.2da - 150
parts_belt.2da - 30
parts_bicep.2da - 30
parts_chest.2da - 75
parts_foot.2da - 30
parts_forearm.2da - 40
parts_hand.2da - 20
parts_legs.2da - 30
parts_neck.2da - 20
parts_pelvis.2da - 50
parts_shin.2da - 30
parts_shoulder.2da - 50
placeableobjsnds.2da - 50
placeables.2da - 1000
poison.2da - 75
polymorph.2da - 150
portraits.2da - 2000
racialtypes.2da - 50
skills.2da - 50
spells.2da - 1500
spellschools.2da - 20
surfacemat.2da - 50
traps.2da - 100
vfx_persistent.2da - 50
visualeffects.2da - 750

PS
Никому не кажется что эта тема немного не там где должна быть, всётаки 2да это как никрути контент.
Lex
Айс, я все таки за то, чтобы 2да переместить в Тулсет.
В Макс+НВН оставить только моделинг и интегрирование его в НВН. (+ сопутствущие 2да. Но не таблицы классов, расс и тд.)
По 2да народ в основном лезет (по вполне понятной причине) в Тулсет, а не в Макс. И не находя ответы, создает новые темы и тд.
Vhall
Ice Blade
Спасибо, прямо выручил yes.gif

Кстати, ни у кого нет уже размеченного с 400 до 750 appearance.2da? biggrin.gif
Или кто-нибудь может предложить рациональный вариант разметки... lol.gif
DBColl
QUOTE (Vhall’rafein @ Jan 5 2005, 18:32)
Кстати, ни у кого нет уже размеченного с 400 до 750 appearance.2da? Или кто-нибудь может предложить рациональный вариант разметки...

Копировать строки, а потом ручками переписывать ID в 3 прохода. Сначала единицы, потом десятки, потом сотни. smile.gif
K.SpecTr
skills.2da - таблица, отвечающая за все доступные в игре навыки.

Id - индекс
Label - текстовая метка навыка
Name - ссылка в файле tlk на название навыка
Description - ссылка в файле tlk на описание навыка
Icon - имя ресурса с иконкой навыка
Untrained - позволяется ли использование навыка без присвоения ему очков при повышении или выборе уровня (бонусы не учитываются)(1-да, 0-нет)
KeyAbility - характеристика, ответственная за навык (от нее будут зависеть бонусы и пенальти к навыку)
ArmorCheckPenalty - накладываются ли на навык пенальти от брони (значение в поле ACCHECK таблицы armor.2da) (0-нет, 1-да)
AllClassesCanUse - доступен ли навык всем классам (1-да, 0-нет)
Замечание: Это значение взаимно перекрывается строкой в CLS_SKILL_***.2da: т.е. если стоит 1 и строка навыка в CLS_SKILL_***.2da отсутствует, то навык все равно будет добавлен классу как внеклассовый, что позволяет сокращать строки в CLS_SKILL_***.2da; если стоит 0, но строка в CLS_SKILL_***.2da есть, то навык будет доступен по правилам CLS_SKILL_***.2da; для того чтобы навык был не доступен необходимо поставить 0 И убедиться что соответствующая строка в CLS_SKILL_***.2da отсутствует.
Category - категория навыков из таблицы categories.2da (надо исправить в feat.2da - была ошибка в названии)
Предположение 1: Биовари зарезервировали этот столбец для возможной группировки навыков, аля "hide"+"move silently"=stealth. Возможно, хотя спорно, это было бы полезно для скриптов, но на практике во всех строках стоит **** (н/а по нашему) и столбец не используется.
Предположение 2: (более вероятное, и я на 99% уверен что так оно и есть, - по аналогии с feat.2da) Есть, например, такая функция GetCreatureTalentBest(), определяющая для AI лучший активный фит или действие по категории исходя из их CR() - теоретически это можно продолжить и на скилы. По категории определяем из каких навыков будем выбирать возможное действие и сравниваем CR.
MaxCR - "рейтинг крутости"(Challenge Rating) для данного навыка. Внутри функции GetCreatureTalentBest() мы выбираем действие, имеющее наиболее приближенный снизу (меньший или равный) maxCR к заданному из одной категории. (Еще один плюс к предположению 2, но возможно более опытные скриптеры меня поправят)
Замечание: Похоже эти две строки хотели применять для определения навыков, годных к использованию во время боя, а именно - animal empathy, heal, parry, taunt.
Constant - имя константы SKILL_***, определяющей навык.
HostileSkill - Является ли навык враждебным по природе и, соответственно, требующим проверки на реакцию объекта (возможно негативную к персонажу, пример - "pick pocket") (0-нет, 1-да)

На этом разбор таблиц для создания класса закончен - следующим будет пример (как только его оформлю).
Вишес
K.SpecTr
Так в чем проблема? я торможу что-то...
в этой теме, по моему, лежит все, что надо, для нового класса.
и сразу предупреждаю свой класс я делал варварскими методами, так что вряд ли что мудрое посоветую.
Vhall
Тут у меня несколько вопросов. Подскажите пожалуйста.

1. Как прописывается (создается) subrace?
2. Можно ли задать субрасе собсвенную модель?
3. Можно ли изменить модель обычной (сущесвующей) расы?
4. Как изменить параметры существующей расы?
Аваддон
Vhall’rafein Вобщето саб раса вводится при создании игрока. Затем скриптами можно ее читать (GetSubRace) и уже в зависимости от нее творить с игроком все что тебе нужно.
K.SpecTr
Vhall’rafein
Можно изменить модель или создать свою. Модельки составные вида pZYn_<bodypart>XXX, где:
P - это из столбца MODELTYPE в appearance.2da, если ставим не P, то модель считается не составной, и в RACE стоит RESREF на полную модель кричи (.mdl и текстура одноименные для P - .plt-текстура, для не P - .dds или .tga),
Z - буква для определения пола,
Y - берется из столбца RACE appearance.2da для соответствующей расы,
n - это цифра, что она задает я не разобрался, но вроде это фенотип (0-обычный, 1-толстый),
дальше часть тела (например, chest),
XXX - три цифры, задающие номер модели (для типов одежды, брони и т.д. "надетых" на модель)
Параметры расы меняются в racialtypes.2da.
Вот только как добавить кнопочку в меню рас я не знаю.
Vhall
Ага... всем спасибо.
K.SpecTr
А что если модель будет цельная (без возможности изменения цвета волос, головы и т.д.) и из оригинальных? Возможно ли просто прописать ее в racialtypes?

ЗЫ Кнопку для дополнительной расы сделать нельзя. Это вшито в движок. Но можно изменить одну из стандартных, сделав тем самым новую полноценную расу
Lemegeton
Усем БАААЛЬШОЕ здарово!!! Или, как говорится, Hello, All! Вот и вышел Я из запоЯ!

А вы, блин, пацаны, вааще, я погляжу, оборзели! Я же тут посты за ПЕРВОЕ ЯНВАРЯ нашел!!! crazy.gif
Вы чего - трэзвенники, что-ли??? Но все-равно. Очень рад вас всех снова... хм... читать?!

Vhall’rafein: Ну нифига вы тут с Chimeric'ом за две недели наворотить успели!!! Еле-еле все прочитал!

QUOTE
... Кнопку для дополнительной расы сделать нельзя. Это вшито в движок. Но можно изменить одну из стандартных, сделав тем самым новую полноценную расу...


Вот, вот. Об этом-то я тебя и хотел спросить-поспрашивать. yes.gif Ну и какую рассу заменять??? dntknw.gif
Добавлено в [mergetime]1105424390[/mergetime]
QUOTE
Можно уже потихоньку оформлять в русский мануаль по 2да 


Тэкс... Меня слегка удивило слово "русский"?! Существует АНГЛИЙСКИЙ мануал?????? diablo.gif

Ну и чего тогда мы тут все (и лично я, заодно) геморрой себе отращиваем в локоть толщиной??? angry2.gif wacko.gif aggressive.gif

НА БОЧКУ!!!

З.Ы. Мастеру колобков: А нельзя ли колобка, бъющего по столу кулаком?! biggrin.gif
Vhall
Только что опробовал систему замены расы. Все нормально кроме самой кнопки. Она ссылается на оригинальный диалог и никак не относится к racialtypes. Кто знает как ее заоверрайдить?
DBColl
Вал, скорее всего придется расковырять станадартный диалог.тлк и припаять его к твоему модулю... По-крайней мере, я делал это с Проклятием, готовя его к СД-версии.
Vhall
Хм, а вот это уже интересно... biggrin.gif
Припаять весь или только нужные строчки? Как это осуществить, не мог бы расписать? Хотя бы примерно
[MoF]Darth_Nick
БИГ респект за создание и продлевание етой темы до 3 страницы! biggrin.gif biggrin.gif
теперь снова займусь 2DA
DBColl
QUOTE (Vhall’rafein @ Jan 11 2005, 21:50)
Хм, а вот это уже интересно... Припаять весь или только нужные строчки? Как это осуществить, не мог бы расписать? Хотя бы примерно

Да я просто взял одну из лучших руссификаций на сегодняшний день, открыл tlk-шку в tlk-editore и поисправлял для себя те кнопки, которые надо было. Потом пересохранил этот тлк со стандартным именем. То есть я заменил первоначальный dialog.tlk своим dialog.tlk с небольшим подправлением исходного. Обычная операция. Но по ходу ты хочешь сделать все-таки не так... unsure.gif
Leon PRO
QUOTE
XXX - три цифры, задающие цвет1+цвет2+номер модели(для типов одежды, брони и т.д. "надетых" на модель)
Не верно, это просто нумерация. Нумерация распределяется по цветам только у оружия.
Vhall
DBColl
Твой dialog.tlk был кастомным с нужными тебе исправлениями или заменял оригинальный? unsure.gif
Lemegeton
QUOTE
Только что опробовал систему замены расы. Все нормально кроме самой кнопки. Она ссылается на оригинальный диалог и никак не относится к racialtypes. Кто знает как ее заоверрайдить?


Да, да, да.

Именно по этому еще не кидал описалово, как создать рассу. Там, во-первых, совсем дофига чего править нужно, а во вторых...

Никак нельзя название и описание рассы (и еще нескольких вещей) брать из кастомного ltk. Даже в 1.64 нельзя. Единственный выход это править сам Dialog.tlk.
Править его можно любым редактором, работающим с tlk файлами. Значения ставь как можно больше, но МЕНЬШЕ чем 16777216!!! Vhall’rafein, заодно, впиши туда название и описание формотвора, plz, и скинь мне номера (а еще лучше, сам tlk).

Диалог DBColl'а был оригинальным, но с внесенными исправлениями и заменял оригинальный smile.gif

DBColl: А какую вы рассу для Проклятья делали?
Vhall
Выходит для прошивания оригинального ТЛК его нужно полностью скопировать? Это еще +4 мега в наш хак? swoon.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.